
package com.insigma.business.qrcode.soldier._consumer;




import com.insigma.business.qrcode.common.template.BasePagingResponse;
import com.insigma.business.qrcode.common.vo.BaseDeleteRequest;
import com.insigma.business.qrcode.common.vo.BaseResponse;
import com.insigma.business.qrcode.soldier.dto.*;
import com.insigma.business.qrcode.soldier.request.BaseApiRequest;
import com.insigma.business.qrcode.soldier.request.BaseGetRequest;
import com.insigma.business.qrcode.soldier.request.SoldierApplyInfoAssignCodeUpdateRequest;
import com.insigma.business.qrcode.soldier.request.SoldierApplyInfoSearchRequest;

import java.util.List;


public interface SoldierApplyInfoConsumer {

   
    BasePagingResponse<List<SoldierApplyInfoDTO>> searchSoldierApplyInfo(final SoldierApplyInfoSearchRequest searchRequest);

   
    BaseResponse<SoldierApplyInfoDTO> getSoldierApplyInfo(final BaseGetRequest baseGetRequest);

   
    BaseResponse<String> insertSoldierApplyInfo(final SoldierApplyInfoInsertRequest insertRequest);

   
    BaseResponse<Integer> updateSoldierApplyInfo(final SoldierApplyInfoUpdateRequest updateRequest);

   
    BaseResponse<Integer> deleteSoldierApplyInfo(final BaseDeleteRequest deleteRequest);

    
    BaseResponse<String> saveSoldierApplyInfo(SoldierApplyInfoInsertRequest insertRequest);

    BaseResponse<String> checkSoldierApplyInfoBySoldierId(final String soldierId);

    BaseResponse<ContactNoDTO> queryDistinctContactNo(SimpleApiRequest request);

    
    BasePagingResponse<List<SoldierApplyInfoDTO>> listWaitTasks(SoldierApplyInfoSearchRequest request);

    
    BasePagingResponse<List<SoldierApplyInfoDTO>> listDoneTasks(SoldierApplyInfoSearchRequest request);

    
    BaseResponse<Boolean> completeTask(SoldierApplyInfoInsertRequest request);

    BaseResponse<SoldierApplyInfoDTO> getSoldierApplyInfoById(String id);

    BaseResponse<String> saveSoldierApplyInfoByFWZ(SoldierApplyInfoInsertRequest soldierApplyInfoInsertRequest);

    BaseResponse<SoldierApplyInfoDTO> getSoldierApplyInfoBySoldierId(String userId);

    BaseResponse<String> reApplySoldierQR(SoldierApplyInfoUpdateRequest request);

    BaseResponse<Integer> deleteUnsuccessfulApply(BaseDeleteRequest deleteRequest);

 
 BaseResponse<String> saveSoldierApplyInfoOfOuterTemporary(final SoldierApplyInfoInsertRequest soldierApplyInfoInsertRequest);

 
 BaseResponse<Integer> getRemainingTimesOfOuterTemporary(String soldierId);

 
 BaseResponse<String> saveSoldierApplyInfoOfOutsider(final SoldierApplyInfoInsertRequest soldierApplyInfoInsertRequest);

 
 BaseResponse<String> reApplySoldierQROfOutsider(SoldierApplyInfoUpdateRequest request);

    BaseResponse<String> updateApplyInfoOfOutsider(SoldierApplyInfoUpdateRequest request);

    BasePagingResponse<List<SoldierApplyInfoDTO>> searchCzApplyInfo(final SoldierApplyInfoSearchRequest searchRequest);

    BasePagingResponse<List<SoldierApplyInfoDTO>> getCheckApplyInfo(SoldierApplyInfoSearchRequest searchRequest);

    BaseResponse<Boolean> updateSoldierApplyInfoAssignCode(SoldierApplyInfoAssignCodeUpdateRequest request);
}
